在 Windows 上使用 WSL 2 安裝 Linux
TLDR
- WSL 2 提供完整的 Linux 內核,並支援與 Windows 檔案系統的雙向存取。
- 安裝 WSL 2 建議使用
wsl --install指令,並務必將預設版本設定為 2。 - Docker Desktop 整合 WSL 2 可大幅提升資源分配效率與啟動速度。
- 若需同時運行 Windows 與 Linux Containers,建議將 Docker Desktop 切換至 Windows Containers 模式,並在 WSL 2 的 Linux 發行版中獨立安裝 Docker Engine。
- 透過檔案總管存取 Linux 檔案時,建議將資料存放在
/home/{使用者帳號}/目錄下,以避免檔案權限或存取異常問題。
WSL 2 安裝與管理
在 Windows 10 (2004 版以上) 或 Windows 11 環境下,WSL 2 是運行 Linux 的首選方案。
安裝步驟
在 Windows PowerShell (系統管理員身分) 執行以下指令:
安裝 WSL 2:
bashwsl --install註:若需指定特定發行版,可使用
wsl --install -d <DistributionName>。設定預設版本為 2:
bashwsl --set-default-version 2設定特定發行版的版本:
bashwsl --set-version <DistributionName> 2
常見管理指令
- 查詢可安裝清單:
wsl --list --online - 查詢已安裝清單與狀態:
wsl --list --verbose - 設定預設 Linux 發行版:
wsl --set-default <DistributionName> - 移除 Linux 發行版:
wsl --unregister <DistributionName>
WARNING
移除 Linux 發行版將會永久刪除該發行版內的所有資料,無法復原。
Docker Desktop 與 WSL 2 整合
將 Docker Desktop 整合至 WSL 2 可獲得更好的效能表現,包括動態記憶體分配與更快的啟動速度。
設定方式
在 Docker Desktop 設定中進行以下調整:
- General: 勾選
Use the WSL 2 based engine。 - Resources > WSL Integration: 啟用
Enable integration with my default WSL distro,並在下方清單中勾選需要整合的 Linux 發行版。
同時運行 Windows 與 Linux Containers
由於 LCOW (Linux Container On Windows) 已廢止,若需同時運行兩者,建議採取「Docker Desktop 切換至 Windows Containers 模式」搭配「WSL 2 內安裝 Docker Engine」的架構。
設定步驟
- 啟用 Windows 容器功能:powershell
Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V", "Containers") -All - 若在 Linux 內執行
docker-compose up遇到permission denied錯誤,通常是因為 Docker socket 權限問題,需確認當前使用者是否已加入docker群組。
跨系統檔案存取
WSL 2 允許 Windows 與 Linux 檔案系統互相存取:
- Windows 存取 Linux:在檔案總管路徑列輸入
\\wsl$\<DistributionName>。 - Linux 存取 Windows:透過
/mnt/<WindowsDriveLetter>路徑存取 Windows 硬碟。
TIP
踩雷紀錄:透過網路芳鄰存取 Linux 檔案時,非 /home/ 目錄下的檔案在重開機後可能出現存取異常。建議將重要資料集中存放在 Linux 的用戶資料夾內。
異動歷程
- 初版文件建立。
- 將簡寫指令改為完整指令。
- 補充解除安裝 WSL 的指令。
- 嘗試提供之前問題的解決方案。
- 修正設定預設 Linux 發行版的指令。